package com.xjh.basestudy.lanqiaobei;

import java.util.Arrays;

public class ViolentSearch {
    public static void main(String[] args) {
//        暴力搜索
        /**
         * 在Java中实现的话，可能会用到多层循环、递归（排列问题）、排列组合生成等方法。可能还需要注意剪枝
         * 明确解空间：确定所有可能的候选解范围
         * 遍历解空间：使用循环/递归生成所有候选解
         * 验证条件：对每个候选解进行有效性检查
         * 记录结果：收集满足条件的所有解
         * */
        int[] nums = {2, 7, 11, 15};
        int target = 9;
        int[] result = twoSum(nums, target);
        System.out.println(Arrays.toString(result)); // 输出 [0, 1]
    }
    // 问题：在数组中找到两个数，使它们的和等于目标值
    public static int[] twoSum(int[] nums, int target) {
        // 遍历所有可能的数对组合
        for (int i = 0; i < nums.length; i++) {
            for (int j = i + 1; j < nums.length; j++) {
                // 验证条件
                if (nums[i] + nums[j] == target) {
                    return new int[]{i, j};
                }
            }
        }
        return new int[0]; // 未找到解
    }
}
